// $(function (){
//
//
//
//     loadTeacherList();
//
//
// });
//
//
// function loadTeacherList(){
//
//     $.ajax({
//         url: "/api/teacher/list"
//     }).done(function (data){
//         // console.log(data)
//         let html="";
//         data.forEach((element,index) =>{
//             html+="<tr>"
//             html+="<td>"+element.id+"</td>"
//             html+="<td>"+element.name+"</td>"
//             html+="<td>"+element.sex+"</td>"
//             html+="<td>"+element.age+"</td>"
//             html+="<td>"+element.tno+"</td>"
//             html+="<td><a href='#' onclick='showTeacherDlg("+element.id
//                 +")'>编辑</a>&nbsp;&nbsp;<a href='#' onclick='deleteById("+element.id+")'>删除</a></td>"
//             html+="<tr>"
//         })
//         $("#teacherTb").html(html)
//     });
//
//
// }




let layerIndex
/**
 * 弹出学生新增/更新对话框
 * */
function showTeacherDlg(id){
    let title="新增教师"
    $("#btnOk").prop("disabled",false).removeClass("layui-btn-disabled");
    if(id){
        //是编辑
        title="编辑教师"
        $("#formId").css("display","block");


        //读取学生信息并赋值
        $.ajax({
            url:"/api/teacher/"+id,
            method:"GET"
        }).done(result=>{
            console.log(result)

            //遍历 result 对象并将值填充到 #teachForm 表单中
            $.each(result,function(key,value){
                //修改选择器，确保选择的是#teachForm内的字段
                var field=$('#teachForm [name="' + key + '"]');
                if(field.is(':radio')){
                    field.filter('[value="'+value+'"]').prop('checked',true);
                    //选中对应的单选按钮
                }
                else if(field.is(':checkbox')){
                    field.prop('checked',value ==="yes");//选中复选框
                }
                else{
                    field.val(value);//填充文本框或其他字段
                }
            });
        })
    } else{
        //是新增
        $("#teachForm")[0].reset();
        $("#formId").css("display","none");
    }
    layerIndex=layer.open({
        type:1,
        title:title,
        area:['520px','auto'],
        content:$('#teachForm')//捕获层
    });

}

function getSearchCondtion(){
    let formData={}
    //遍历每个输入元素，将其值存储到formData对象中
    $('#queryForm').find('input,select').each(function (){
        let name=$(this).attr('name');//获取元素的name属性
        let value=$(this).val();//获取元素的值

        //只有name属性存在且值不为空才会添加到formData中
        if(name && value){
            formData[name]=value;
        }
    });
    return formData
}

layui.use(function (){
    //验证表单是否合法
    layui.form.on('submit(teach-dlg)',function (data){
        event.preventDefault();//阻止表单默认提交
        commitStuDlg();
    })
    //表格初始化
    const table=layui.table;
    let teacher=getSearchCondtion();


    //创建渲染实例
    table.render({
        elem:'#tbTeacher',
        url:'/api/teacher/getbypage',
        //此处为静态模拟数据，实际使用时需换成真实接口
        method:"POST",
        //确保以JSON格式发送
        contentType:'application/json',
        where:{"data":teacher},
        page:true,
        cols:[[
            {type: 'checkbox',fixed:'left'},
            {field: 'id',fixed: 'left',width:80,title:'id',sort:true},
            {field: 'name',title: '姓名'},
            {field: 'tno',title: '工号',width: 150},
            {field: 'sex',width: 80,title: '性别',sort: true,templet:d=>d.sex===1?'男' :(d.sex===2?'女':'未知')},
            {field: 'age',width: 100,title: '年龄',sort: true},
            {field: 'right',title: '操作',width: 134,minwidth:125,templet:'#editTemplate'}
        ]],
        done:function (rs){
            //console.log(rs)
        }
    });


    //触发单元格工具事件
    table.on('tool(tbTeacher)',function (obj){
        var data =obj.data;
        if(obj.event==='edit'){

            $("#btnOk").prop("disabled",false).removeClass("layui-btn-disabled");

            //数据填充表单
            $.each(data,function(key,value){
                //修改选择器，确保选择的是#teachForm内的字段
                var field=$('#teachForm [name="' + key + '"]');
                if(field.is(':radio')){
                    field.filter('[value="'+value+'"]').prop('checked',true);
                    //选中对应的单选按钮
                }
                else if(field.is(':checkbox')){
                    field.prop('checked',value ==="yes");//选中复选框
                }
                else{
                    field.val(value);//填充文本框或其他字段
                }
            });

            layerIndex=layer.open({
                title:'编辑 - id:'+data.id,
                type:1,
                area:['80%','80%'],
                content:$("#teachForm")
            });


        }
    })
});


function search(){
    let teacher=getSearchCondtion();
    const table=layui.table;
    table.reloadData("tbTeacher",{
        where: {data:teacher}
    });
    console.log("where condition:"+JSON.stringify(teacher))
}


function deleteConfirm(){
    const table=layui.table;
    //获取表格的选中状态
    const checkStatus=table.checkStatus('tbTeacher');
    //'tbTeacher'是你的表格的ID或lay-filter
    console.log(checkStatus.data);
    const ids=checkStatus.data.map(item=>item.id);
    if(ids.length===0){
        layer.msg('请选择要删除的教师!',{icon:2});
        return;
    }
    layer.confirm('是否删除？一旦删除，不可恢复',{icon:3},function () {
        $.ajax({
            url:"/api/teacher/deleteId/"+ids.join(","),
            method:"DELETE",
        }).done(result=>{
            search();
        })
        layer.closeAll();//关闭所有层
    },function (){
    });
}

function commitStuDlg(){
    let id=$("#id").val();
    if(id!=null && id!=""){
        //是更新学生
        let formData= $("#teachForm").serialize();
        $.ajax({
            url: "/api/teacher/update",
            method:"PUT",
            data:formData
        }).done(result=>{
            //读取并刷新原来的读学生列表
            search();
            console.log(result);
            //关闭弹出层
            console.log("add success!")
            if(layerIndex)
                layer.close(layerIndex)
        }).fail((jqXHR,textStatus,errorThrown)=>{
            console.error("Request failed:"+textStatus+"-"+errorThrown);
            //可以在这里处理错误逻辑
            alert("An error occurred.Please try again.");
        });


    }else{
        //新增学生
        let formData= $("#teachForm").serialize();
        $.ajax({
            url: "/api/teacher/add",
            method:"POST",
            data:formData
        }).done(result=>{
            console.log(result);

                //读取并刷新原来的读学生列表
                search();


                //关闭弹出层
                console.log("add success!")
                if(layerIndex)
                    layer.close(layerIndex)

        }).fail((jqXHR,textStatus,errorThrown)=>{
            console.error("Request failed:"+textStatus+"-"+errorThrown);
            //可以在这里处理错误逻辑
            alert("An error occurred.Please try again.");
        });
        //新增学生
    }

    //将表单数据发送到服务器的insert中，把提交按钮变为灰
    $("#btnOk").prop("disabled",true).addClass("layui-btn-disabled");//禁用按钮

}


function deleteById(id){
    //删除
    layer.confirm('是否删除？一旦删除，不可恢复',{icon:3},function () {
        $.ajax({
            url:"/api/teacher/delete/"+id,
            method:"DELETE"
        }).done(result=>{
            search();
        })
        layer.closeAll();//关闭所有层
    },function (){
    });
}